<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陆页面</title>
    <!-- 引入ElementUI样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="loginapp">
    <el-form :model="loginBean" status-icon ref="loginBean" label-width="100px" class="demo-ruleForm">
        <el-row>
            <el-col :span="6">
                <el-form-item label="用户名" prop="username" :span="6">
                    <el-input type="text" v-model="loginBean.username" placeholder="请输入用户名" autocomplete="off"></el-input>
                </el-form-item>
            </el-col>
        </el-row>

        <el-row>
            <el-col :span="6">
                <el-form-item label="密码" prop="userpsw">
                    <el-input type="password" v-model="loginBean.userpsw" placeholder="请输入密码" autocomplete="off"></el-input>
                </el-form-item>
            </el-col>
        </el-row>

        <el-form-item>
            <el-button type="primary" @click="doLogin()">提交</el-button>
            <el-button @click="resetForm('ruleForm')">重置</el-button>
        </el-form-item>
    </el-form>
</div>
<!--引入vue的库，一定要在element库文件之前-->
<!-- 开发环境版本，包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!-- 引入ElementUI组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://unpkg.com/element-ui/lib/table.js"></script>
<!--引入axios库，完成后台异步请求的http通信，替代jquery ajax（也可以使用）-->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<!--解决axios跨域无法传递form表单数据到后台实体类的问题-->
<script src="https://cdn.bootcss.com/qs/6.5.1/qs.min.js"></script>
<!--使用vue组件进行处理-->
<script type="text/javascript">
    /*创建一个vue组件对象*/
    var vm = new Vue({
        el: '#loginapp', // 绑定dom组件，一般使用一个div将需要绑定的dom组件包含起来
        data: { // 绑定的数据结构
            loginBean: {
                username: "",
                userpsw: ""
            }
        },
        methods: { // dom组件的行为方法
            doLogin: function () {
                console.log("登陆事件：");
                console.log(this.loginBean);
                console.log("uriString:::::");
                //console.log(JSON.stringify(this.loginBean));
                // 发送post请求的数据字符串
                // 使用let 声明一个局部变量   等价于 var  但是二者有不同【课下作业】  let是es6中的一个关键字
                let req_data = Qs.stringify(this.loginBean);
                // 同服务器进行异步通信，验证用户登陆的合法性
                axios.post('http://localhost:9091/springboot_vue_elementui_server20191028/doAjaxLogin', req_data) .then(function (response) {
                        console.log(response);
                        if(response.data && response.data == "ok"){
                            // 登陆成功
                            console.log("登陆成功");
                            /*
                            注意：此处缺点是：使用location直接进行了页面跳转，不能实现权限的路径限定管理；可以集成路由管理插件
                             */
                            window.location.href = "index.html";
                        }
                    })
                    .catch(function (error) {
                        console.log(error);
                    });
            },
            resetForm(formName) {
                this.$refs[formName].resetFields();
            }
        }
    })
</script>
</body>
</html>